import axios from "axios"
import Nprogress from "nprogress"
import "nprogress/nprogress.css"

const request = axios.create({
  baseURL: "/api1",
  timeout: 10000
})

// 添加请求拦截器
request.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  Nprogress.start()

  // 权限控制:发送ajax请求的时候,去本地存储中拿到token放在请求头上,随着http请求发送
  const token = localStorage.getItem("user_token")
  config.headers.token = token
  return config;
}, function (error) {
  // 对请求错误做些什么
  Nprogress.done();
  return Promise.reject(error);
});

// 添加响应拦截器
request.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  Nprogress.done();
  if (response.data.code === 20000) {
    return Promise.reject({
      message: response.data.msg,
      isLogin: false
    })
  }
  if (response.data.code !== 10000) {
    return Promise.reject({
      message: response.data.msg
    })
  }
  return response.data.data
}, function (error) {
  // 对响应错误做点什么
  Nprogress.done();
  return Promise.reject(error);
});

export default request